package com.youzan.open.sdk.gen.v1_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.ByteWrapper;
import com.youzan.open.sdk.model.FileParams;
import java.util.List;
import java.util.Map;
import java.util.Date;

public class YouzanFenxiaoTradeBuyerRefundApplyCloseParams implements APIParams, FileParams  {

    /**
     * 扩展信息

     */
    private String extension;
    /**
     * 操作人角色
system|buyer|seller|inside
     */
    private String operatorRole;
    /**
     * 退款单
     */
    private String refundId;
    /**
     * 发起方备注信息
     */
    private String sourceRemark;
    /**
     * 版本号
     */
    private Long version;

    public void setExtension(String extension) {
        this.extension = extension;
    }

    public String getExtension() {
        return this.extension;
    }

    public void setOperatorRole(String operatorRole) {
        this.operatorRole = operatorRole;
    }

    public String getOperatorRole() {
        return this.operatorRole;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getRefundId() {
        return this.refundId;
    }

    public void setSourceRemark(String sourceRemark) {
        this.sourceRemark = sourceRemark;
    }

    public String getSourceRemark() {
        return this.sourceRemark;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public Long getVersion() {
        return this.version;
    }


    public Map<String, Object> toParams() {
        Map<String, Object> params = Maps.newHashMap();
        if (extension != null) {
            params.put("extension", extension);
        }
        if (operatorRole != null) {
            params.put("operator_role", operatorRole);
        }
        if (refundId != null) {
            params.put("refund_id", refundId);
        }
        if (sourceRemark != null) {
            params.put("source_remark", sourceRemark);
        }
        if (version != null) {
            params.put("version", version);
        }
        return params;
    }

    public Multimap<String, ByteWrapper> toFileParams() {
        Multimap<String, ByteWrapper> params = ArrayListMultimap.create();

            return params;
    }


}